package com.zwy.Algorithm;

import java.util.LinkedList;
import java.util.List;

/*
递归算法（英语：recursion algorithm）在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。
递归式方法可以被用于解决很多的计算机科学问题，因此它是计算机科学中十分重要的一个概念。绝大多数编程语言支持函数的自调用，
在这些语言中函数可以通过调用自身来进行递归。
 */
//使用回递归计算阶乘
public class recursion {
    public static void main(String[] args) {
        Solution solution = new recursion().new Solution();
        int n=5;
        int factorial = solution.factorial(n);
        System.out.println(factorial);

    }
    class Solution {

        public int factorial(int n) {
            if(n==0)return 1;
            if(n==1)return 1;
            return n*factorial(n-1);
        }

    }
}
